<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Team 3.0</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<h1>Team 3.0 </h1>
<p><strong>Disclaimer</strong>: This document does not represent a commitment 
  to pursue any of the below mentioned areas. It is a draft of potential future 
  areas of focus for the Eclipse Team component.</p>
<h2>Long Term Goals</h2>
<p>Here is a summary of the areas that Team is focusing on for 3.0.</p>
<ul>
  <li>Provide the level of control over resource management required by repository 
    providers.</li>
  <li>Provide UI support to enable repository providers to integrate well into 
    Eclipse.</li>
  <li>Ongoing support of CVS but no major developement</li>
  <li>Support other Team related funtionality such as target management?</li>
</ul>
<p>The following sections describe each of these areas in more detail.</p>
<h3>Resource Control for Repository Providers</h3>
<p>Different repository providers desire different levels of control over version 
  controlled resources. Currently, there are several facilities that provide a 
  certain degree of provider control (e.g. move/delete hook, file modification 
  validator, team-private, phantoms). This is a rather piecemeal approach that 
  still does not provide enough control (e.g. copy sementics, missed deltas). 
  These facilities should be consolodated and should provide the repository provider 
  with the level of control they require to work optimally.</p>
<p>Here is a list of some of the known problem areas that should be addressed 
  by work in this area:</p>
<ul>
  <li>copy sematics (akin to move/delete control already provided)</li>
  <li>session and persistant property management</li>
  <li>permissions</li>
  <li>integration of local history and remote history</li>
  <li>workspace/resource locking (which relates to multi-threading possibilities)</li>
  <li>non-local resources (what is a non-local resource and what is a phantom)</li>
  <li>hidden resources (aka team-private)</li>
  <li>missing deltas because the providers plugin is not loaded</li>
  <li>stychronizer and phantoms</li>
</ul>
<p>The first step is to capture the above in a form that can be used to gauge 
  how mush work is involved and the impact on Core (where most of the funtionality 
  will come from).</p>
<h3>UI Support for Repository Provider Workflows</h3>
<p>Although each repository provider is unique, there is common ground between 
  them. Our goal should be to provide integration points that allow the uniqueness 
  of each repository provider to be realized in Eclipse but also to provide common 
  UI pieces that will simplify the implementation efforts of some or all repository 
  providers. </p>
<ul>
  <li>plugin discovery and enabling</li>
  <li>roles</li>
  <li>view/editor integration</li>
  <li>dynamic views</li>
  <li>keybindings</li>
  <li>sharing workspace setup</li>
  <li>compare infrastructure</li>
  <li>synchronization infrastructure</li>
  <li>file types/ignore patterns</li>
  <li>userid/password management</li>
</ul>
<p>The first step is to understand how each of these areas can help repository 
  providers and also to estimate the effort required to provide them. Most of 
  these items involve multiple components (Core, Team, Compare, UI, Update) and 
  will effect API.</p>
<h3>CVS</h3>
<p>There is not a lot of priority items that remains for the CVS plugin. Here 
  are a list of several items being considered:</p>
<ul>
  <li>CVS Repositories View and Tag Management</li>
  <li>infrastructure to prevent regressions in functionality and performance</li>
  <li>separate from SDK</li>
  <li>working with multiple respositories</li>
  <li>improved branching/merging support</li>
</ul>
<p>The CVS plugin will also need to conform to any changes that come about due 
  to Team/Platform changes.</p>
<h3>Other Team Related Areas</h3>
<p>It is not clear at this time if there is enough of a demand for target management 
  to justify making it a priority. It sure would be nice to have though. It would 
  also be nice to know if there are other Team facilities that could be provided.</p>
<h2>Near term work items</h2>
<h3>Synchronize View</h3>
<ol>
  <li> Sync view usability
<ul>
  <li> table view for handling smaller number of sync elements (navigating sparse 
    tree is a pain)</li>
  <li> text editor should be fully functional</li>
  <li> work flow 
    <ul>
      <li> turning off builds when updating individual changes</li>
      <li> should navigator also act as sync view? JM's recent changes.</li>
    </ul>
  </li>
</ul>
  <li>Sync view API - people want to reuse that good work </li>
  <ul></ul>
  <li> Sync view as separate pieces

<ul>
  <li> work with UI team to sort out how to wire together navigator, outline, 
    text editor</li>
  <li> also solves problem of sync view being too big for default view locations</li>
  <li> also, compare editors are odd as editors</li>
</ul>
</ol>
<h3>Investigate Improving Repository Provider Support</h3>
<ol>
  <li>End to end scenarios as they are and as we would like to see them (roles, 
    editor integration, compare/sync, update, etc). The scenarios to consider 
    are things like:</li>
<ul>
  <li>How are projects shared (differs by repository provider)</li>
  <li>How are operations perform (main menu, context menu, key-strokes)</li>
  <li>Where are operations performed (view, editor, perspective, roll)</li>
  <li>Resource synchronization/merging</li>
  <li>comparing</li>
  <li>remote browsing</li>
  <li>patching (do others use Team&gt;Apply Patch?)</li>
  <li>disconnection from version control (may or may not be supported)</li>
  <li>sharing workspace setup (project sets)</li>
  <li>sharing project setup (properties, linked resources)</li>
  <li>transations (validateSave/Edit)</li>
    <li>file type management</li>
  <li>ignores</li>
</ul>
  <li>Requirements for consolodated resource control</li>
</ol>
<h3>Polish CVS</h3>
<p>Work can be done in the background while other areas involving multiple components 
  are being fleshed out. </p>
<ol>
  <li>CVS Repositories view and taga management.</li>
  <li>Perfomance benchmarks</li>
</ol>
</body>
</html>
